package com.iatinspur.learn;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
/**
 * 22集 讲解 堆内存  存对象
 *
 *   used total max
 *
 *   used   已经使用的堆内存
 *   total  总内存
 *   max   最大内存
 *
 *   这几个数据去arthas 中去看
 *
 *  启动后给个总内存total，当used越来越大，total就开始扩容，当扩容到 max后扩容不了 used要是还在变大追赶到total  就内存溢出了
 *  操作得出  total 其实是在 max的70%左右就会挂 结论是GC的问题
 *
 *  -Xmx 最大内存   -Xms 初始化总内存
 *  其中 Xmx必须大于2m    Xms必须大于1m
 *  Xms要是设置的太小 Xmx设置很大会怎样 GC会频繁调用 也是会崩溃的
 *
 *  内存的
 *
 *
 */
public class Learn_19_JVM {
    public static void main(String[] args) throws InterruptedException, IOException {
        List<Object> obs = new ArrayList<Object>();
        try {
            int count = 0;
            while(true){
                obs.add(new byte[1024*1024*10]);
                Thread.sleep(4000);
            }
        }catch (OutOfMemoryError e){
            System.err.println(e.getClass());
        }
        System.in.read();
    }
}








